package com.decent.wx.service;

import com.decent.entity.common.Message;
import com.decent.wx.entity.TemplateData;
import com.decent.wx.entity.WxMessage;

import java.util.Map;

/**
 * @author 王雪杰
 * @date 2021/8/28 16:57
 */
public interface MeService {
    /**
     * 发送模板消息
     *
     * @return Message
     */
    Message send();

    /**
     * 获得openId
     *
     * @param code 前端wx.login(Object object)获得
     * @return openid
     * @throws Exception Exception
     */
    String getOpenId(String code) throws Exception;

    /**
     * 获得access_token
     *
     * @return String
     */
    String getAccessToken();

    /**
     * 发送订阅消息sendTemplateMessage
     * 小程序订阅消息,发送服务通知
     *
     * @param touser     接收者（用户）的 openid
     * @param templateId 所需下发的模板消息的id
     * @param page       点击模板卡片后的跳转页面，仅限本小程序内的页面。支持带参数,（示例index?foo=bar）。该字段不填则模板无跳转。
     */
    void subscribeMessage(String touser, String templateId, String page, Map<String, TemplateData> map);

    /**
     * 获取当前帐号下的个人模板列表
     *
     * @return WxMessage
     */
    WxMessage getTemplateList();
}
